package fsoft.MavenPlayaPark;
import java.sql.SQLException;
import java.util.Vector;

public class Gestor {
	public Vector<Bar> bar = new Vector<Bar>();
	public Vector<Atraccion> atraccion = new Vector<Atraccion>();
	public Vector<Empleado> empleado = new Vector<Empleado>();
	public Vector<Pulsera> pulsera = new Vector<Pulsera>();


	//constructor VServicios
	public Gestor(int id_bar) throws SQLException, Exception{
		Bar nuevo_bar=new Bar(id_bar,null);
		inicializar_productos(nuevo_bar);
		this.bar.addElement(nuevo_bar);
	}


	public Empleado autentificar(String user, String password, int tipoEmpleado) {
		EmpleadoServicio persona=null;
		/*****************SE PODRIA MIRAR UNA BD CON EL AGENTE****************/
		switch(tipoEmpleado){
		case 1:
			if(user.equals("tomas") && password.equals("1234")){
				persona = new EmpleadoServicio(user,password);
				persona.set_bar(this.bar.firstElement());	
			}
			break;
		}
		return persona;
	}

	/*****************Base de Datos ******************/

	public void almacenar_pulsera(Pulsera pulsera) throws SQLException, Exception {
		String update="UPDATE Pulseras SET gasto_acumulado="+pulsera.get_gasto_acumulado()+
		" ,viajes_acumulado="+pulsera.get_viajes_acumulado()+" WHERE id_pulsera="+pulsera.get_id_pulsera()+";";

		Agente.getAgente().update(update);

		/*****se guardan productos en la tabla******/

		if( pulsera.get_listaproductos()!=null ){
			Vector<Producto> productos =pulsera.get_listaproductos();
			for(int i=0;i<productos.size();i++){
				String insert="INSERT INTO PulserasProductos VALUES ("+pulsera.get_id_pulsera()+","+
				+productos.get(i).get_identificador() +");";
				System.out.println(productos.get(i).get_identificador());
				System.out.println(insert);
				Agente.getAgente().insert(insert);
			}
		}

	}

	public void almacenar_producto(Producto producto) {
		throw new UnsupportedOperationException();
	}

	/*****************************************/

	public void inicializar_productos(Bar bar) throws SQLException, Exception{

		Vector<Producto> productos = new Vector<Producto>();

		/********************AGENTE PARA PRODUCTOS *********************/	
		/*************Y METERLOS EN EL VECTOR PRODUCTOS ****************/	

		String copiar = "SELECT identificador, nombre, precio FROM Productos;";
		Vector tabla=Agente.getAgente().select(copiar);
		int max=tabla.size();
		for(int i=0;i<max;i++){
			int identificador=(Integer) ((Vector)tabla.get(i)).get(0);
			String nombre=(String) ((Vector)tabla.get(i)).get(1);
			double precio=(Double) ((Vector)tabla.get(i)).get(2);
			Producto nuevo=new Producto (identificador,nombre,precio);
			productos.add(i, nuevo);
		}

		/***************************************************************/		
		bar.set_producto(productos);
		this.bar.addElement(bar);
	}

	public Pulsera leer_pulsera(int id_pulsera) throws SQLException, Exception {
		Pulsera pulsera;
		String select="SELECT * FROM Pulseras WHERE id_pulsera="+id_pulsera+";";
		Vector tabla1=Agente.getAgente().select(select);
		Vector tabla=(Vector) tabla1.get(0);
		String nombre=(String) tabla.get(1);
		double gasto_acum=(Double) tabla.get(2);
		double gasto_max=(Double) tabla.get(3);
		int viajes_acumulado=(Integer) tabla.get(4);
		int viajes_maximo=(Integer) tabla.get(5);
		Cliente cliente=new Cliente(nombre);
		pulsera=new Pulsera (id_pulsera, gasto_acum,gasto_max,viajes_acumulado,viajes_maximo,cliente); 

		return pulsera;
	}
	/*****************NO SE IMPLEMENTA*****************/
	/****PARA DAR DE ALTA Y PARA REEMPLAZAR PULSERA****/
	//ALTA-> CLIENTE=NULL
	//REEMPLAZAR -> CLIENTE V�LIDO
	public Pulsera obtener_pulsera(Cliente cliente) {
		throw new UnsupportedOperationException();
	}
}